¿Qué debe hacer la función? ¿Qué debe representar?
# ejecutar código y gradualmente descomentar líneasposibles_salidas_dado <-c(1:6)sample(posibles_salidas_dado, 1)
[1] 4
sample(posibles_salidas_dado, 2)
[1] 6 2
sample(posibles_salidas_dado, 3)
[1] 2 3 1
# sample(posibles_salidas_dado, 7) # genera errorsample(posibles_salidas_dado, 7, replace=TRUE)
[1] 2 1 2 3 4 2 4
¡Juguemos!
# primera versión funciónlanzamiento <-function(cdad_dados){sample(1:6,cdad_dados, replace=TRUE)}# arrojar dado según función que crearmoslanzamiento (cdad_dados=3)
[1] 3 4 6
lanzamiento (cdad_dados=6)
[1] 2 6 1 6 2 1
Función 🎲🎲….🎲
- ¿Entrada? => Argumentos
# función con dos argumentoslanzamiento <-function (cdad_dados, nombre_jugador){ resultado <-sample (1:6,cdad_dados, replace =TRUE )paste(nombre_jugador, 'obtuvo el siguiente resultado', resultado)}#La siguiente llamada a la función generará error ya que no contiente# dentro el valor del segundo argumento que es el nombre del jugador# lanzamiento(cdad_dados= 4)lanzamiento(nombre_jugador='Braian',cdad_dados=2)
[1] "Braian obtuvo el siguiente resultado 4"
[2] "Braian obtuvo el siguiente resultado 4"
# la siguiente ejecución generará un problema al no nombrar los# argumentos y en orden posicional, pasar "Braian" como el primer# argumento, que en la función que declaramos como "lanzamiento"# corresponde a "cdad_dados", que debe ser de tipo numérico. # Lo mismo pasaría con el segundo argumento que estamos pasando que en este caso es 5,# pero no lo estamos referenciando con el nombre del argumento en la # función, que corresponde en la segunda posición al de nombre_jugador# lanzamiento( 'Braian',# 5)lanzamiento(2,'Jose')
[1] "Jose obtuvo el siguiente resultado 1"
[2] "Jose obtuvo el siguiente resultado 6"
Para revisar documentación de la función paste ejecutar ?paste en la consola.
Principios Nombres Funciones
Descripción Clara : El nombre debe claramente indicar qué hace la función. Evita nombres genéricos como funcion o proceso.
Consistencia y Coherencia : Mantén un estilo de nomenclatura consistente dentro del proyecto o grupo para facilitar la lectura y comprensión del código.
Principios Nombres Funciones - cont.
Usa Minúsculas y Guiones Bajos : Comienza el nombre con una letra minúscula y utiliza guiones bajos (_) para separar palabras. Esto hace que los nombres sean más fáciles de leer y evitar conflictos con palabras reservadas.
# vector para registrar variación PIBvar_pib <-c (-1.7, 2.3, -3.1 ) # separador décimal es el punto! ojo# datos inventados, no obtenidos de la páginavar_pib
# crear un vector de tipo logical donde se determina si cada elemento de var_pib es mayor que cero
Construir DF
Recordar la relación de orden que tenemos entre los tres vectores
paises - var_pib - crecimiento_presente
Lista con vectores del mismo length() . En la consola ejecutar para cada vector la función length de la siguiente forma length(var_pib) .
# usar la función de R que se llama data_framedf_pib_paises <-data.frame(pais= nombre_paises,delta_PIB= var_pib,crecimiento= crecimiento_presente)# esta función de nombre data.frame, puede tomar tantos argumentos como sean necesarios, siendo cada argumento el nombre que se le dará a cada columna (o atributo) seguido de un signo igual y posteriormente los datos que conformarán cada columna, por ejemplo: pais= nombre_paises# Al crear la data frame, se colocaran tantos argumentos, como columnas se quieran tener, y como en toda función, serán separados por una coma "," la indicación del argumento.df_pib_paises # mostrar la Data Frame Creada
pais delta_PIB crecimiento
1 togo -1.7 FALSE
2 japon 2.3 TRUE
3 irlanda -3.1 FALSE
# recordar que para construir una DF desde distintos vectores necesitamos que cada vector contenta la misma cdad de elementos, en este caso son 3.#
# ir descomentando línea a línea para evaluar los resultados# lista_demo$meses # lista_demo[[1]]
Comparación Elementos
Se hace una comparación de tipo lógico, entre la igualdad de cada uno de los elementos que arroja lista_demo$meses con los elementos que arroja lista_demo[[1]]
Se puede ver, uno a uno, que todos los elementos que arroja cada uno de los métodos de acceso, son iguales puesto que aparecen todos los valores como TRUE
Ejemplos Accesos- Lista/
# ir descomentando línea a línea para evaluar los resultadoslista_demo[[1]][3]
[1] "March"
#lista_demo$meses[3]
Pendiente por Revisar en próxima Clase
Las dos clases pasadas (5 y 6) ha quedado pendiente abordar estos dos temas:
Consultar Vignettes y Cheat Sheets
Acceso a elementos de df (filas, columnas o valor determinado)
Vídeo de Interés
La próxima semana empezamos a trabajar con el libro R4DS de Hadley Wickham y el segundo capítulo versa sobre la visualización de los datos, así que el siguiente vídeo puede resultar de interés https://www.youtube.com/watch?v=jbkSRLYSojo